package com.teacherevaluation.common.util;

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.teacherevaluation.entity.EvaluateBo;
import com.teacherevaluation.entity.EvaluateItem;
import com.teacherevaluation.entity.EvaluteIt;
import com.teacherevaluation.mapper.AddEvaluateItemMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

@Component
@Slf4j
public class ExcelListener extends AnalysisEventListener<EvaluateBo> {

    private static AddEvaluateItemMapper addEvaluateItemMapper; //关键2

    @Autowired  //关键3
    public void setAddEvaluateItemMapper (AddEvaluateItemMapper addEvaluateItemMapper){
        ExcelListener.addEvaluateItemMapper = addEvaluateItemMapper;
    }
    public int id = 0;
    public int id1 = 0;
    public int id2 = 0;
    public int id3 = 0;
    /*
    * 读取每行调用
    * */
    @Override
    public void invoke(EvaluateBo evaluateBo, AnalysisContext analysisContext) {
        System.out.println(":"+evaluateBo);
        if(!(evaluateBo.getContent()==null)){
            id=0;
            EvaluateItem evaluateItem = new EvaluateItem();
            evaluateItem.setParent(id);
            evaluateItem.setContent(evaluateBo.getContent());
            evaluateItem.setPower(evaluateBo.getPower());
            addEvaluateItemMapper.addEvaluateItem(evaluateItem);
            id=evaluateItem.getId();
        }
        if(!(evaluateBo.getContent1()==null)&&(evaluateBo.getPower1()!=null)){
            EvaluateItem evaluateItem = new EvaluateItem();
            evaluateItem.setParent(id);
            evaluateItem.setContent(evaluateBo.getContent1());
            evaluateItem.setPower(evaluateBo.getPower1());
            addEvaluateItemMapper.addEvaluateItem(evaluateItem);
            id1=evaluateItem.getId();
        }
        if(!(evaluateBo.getContent2()==null)&&(evaluateBo.getPower2()!=null)){
            EvaluateItem evaluateItem = new EvaluateItem();
            evaluateItem.setParent(id1);
            evaluateItem.setContent(evaluateBo.getContent2());
            evaluateItem.setPower(evaluateBo.getPower2());
            addEvaluateItemMapper.addEvaluateItem(evaluateItem);
            id2=evaluateItem.getId();
        }
        if(!(evaluateBo.getContent3()==null)&&(evaluateBo.getPower3()!=null)){
            EvaluateItem evaluateItem = new EvaluateItem();
            evaluateItem.setParent(id2);
            evaluateItem.setContent(evaluateBo.getContent3());
            evaluateItem.setPower(evaluateBo.getPower3());
            addEvaluateItemMapper.addEvaluateItem(evaluateItem);
            id3=evaluateItem.getId();
        }
        if(!(evaluateBo.getContent1()==null)&&(evaluateBo.getPower1()==null)){
            EvaluteIt evaluteIt = new EvaluteIt();
            evaluteIt.setIt_content(evaluateBo.getContent1());
            evaluteIt.setTarget_id(id);
            addEvaluateItemMapper.addEvaluateIt(evaluteIt);
        }
        if(!(evaluateBo.getContent2()==null)&&(evaluateBo.getPower2()==null)){
            EvaluteIt evaluteIt = new EvaluteIt();
            evaluteIt.setIt_content(evaluateBo.getContent2());
            evaluteIt.setTarget_id(id1);
            addEvaluateItemMapper.addEvaluateIt(evaluteIt);
        }
        if(!(evaluateBo.getContent3()==null)&&(evaluateBo.getPower3()==null)){
            EvaluteIt evaluteIt = new EvaluteIt();
            evaluteIt.setIt_content(evaluateBo.getContent3());
            evaluteIt.setTarget_id(id2);
            addEvaluateItemMapper.addEvaluateIt(evaluteIt);
        }
        if(!(evaluateBo.getCon()==null)){
            EvaluteIt evaluteIt = new EvaluteIt();
            evaluteIt.setIt_content(evaluateBo.getCon());
            evaluteIt.setTarget_id(id3);
            addEvaluateItemMapper.addEvaluateIt(evaluteIt);
        }
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {

    }
}
